"""
@version:
@filename : 刘洪杰
@author : liuhongjie
@projectname: day02
@time: 2022/07/07
"""
#创建一个角色类
class Role:
    #初始化角色有哪些属性
    def __init__(self,name,sex,blood,equip,room):
        self.name = name
        self.sex = sex
        self.blood = blood
        self.equip = equip
        self.room = room
    #定义战斗的方法,每次提示还剩多少血量
    def attack(self,attack_role):
        self.blood -= attack_role
        print(f"{self.name}还剩{self.blood}滴血")
#创建一个房间类
class Room:
    #初始化房间的人数属性
    def __init__(self,sum):
        self.sum = sum
    #定义加入房间的方法,记录加入房间的角色姓名,并且房间人数+1
    def join_room(self,name):
        self.name = name
        self.sum+=1


def game():
    #实例化三个角色名,role1和role2是同一个房间号
    name = input("请输入第一个角色名:")
    num = input("请输入第一角色的房间号:")
    role1 = Role(name,"male",1000,"防弹衣",num)
    name1 = input("请输入第二个角色名:")
    num1 = input("请输入第二角色的房间号:")
    role2 = Role(name1,"male",100,"无",num1)
    name2 = input("请输入第三个角色名:")
    num2 = input("请输入第三角色的房间号:")
    role3 = Role(name2,"male",50,"无",num2)
    #实例化房间人数为0
    room = Room(0)
    #定义一个数组管理实例化对象
    dct = {"1": role1, "2": role2, "3": role3}
    lst = []
    print("游戏开始了")
    while 1:
        #如果房间人数不足两人,进行添加角色的操作
        if room.sum < 2:
            print("你的房间人数不足两人")
            eidter = input(f"请在下面选择你要添加的角色的编号:"
            f"\n1:{role1.name}\n2:{role2.name}\n3:{role3.name}\n")
            #添加角色到房间
            room.join_room(dct[eidter].name)
            #用之前定义的空列表去存储添加的两个角色的编号
            lst.append(eidter)
        #如果房间人数够了,开始游戏
        if room.sum==2:
            #如果两个角色的房间号相同可以进行战斗
            if dct[lst[0]].room==dct[lst[1]].room:
                #看第一个角色是不是有防弹衣,有就-5滴血,没有就-10
                if dct[lst[0]].equip=="防弹衣":
                    dct[lst[0]].attack(5)
                else:
                    dct[lst[0]].attack(10)
                # 看第二个角色是不是有防弹衣,有就-5滴血,没有就-10
                if dct[lst[1]].equip=="防弹衣":
                    dct[lst[1]].attack(5)
                else:
                    dct[lst[1]].attack(10)
            #如果不在一个房间,不能进行战斗
            else:
                print("两个角色不在同一个房间,无法进行游戏,请重新开始")
                break
            #谁的血条先清0,对方就获胜
            if dct[lst[0]].blood==0:
                print(f"游戏结束,{dct[lst[1]].name}获胜")
                break
            if dct[lst[1]].blood==0:
                print(f"游戏结束,{dct[lst[0]].name}获胜")
                break
game()